package config

import (
	"fmt"
	"github.com/spf13/viper"
)

// YamlConfig 总配置文件
type YamlConfig struct {
	MySQL MysqlConfig
	Redis RedisConfig
}

type MysqlConfig struct {
	Host     string
	Account  string
	Password string
	Port     int
	DBName   string
}

type RedisConfig struct {
	Host     string
	Port     string
	Password string
	DB       int
}

var y YamlConfig

func init() {
	//配置的文件名
	viper.SetConfigName("config")
	//配置文件的类型
	viper.SetConfigType("yaml")
	//配置文件所在路径
	viper.AddConfigPath(".")

	err := viper.ReadInConfig()
	if err != nil {
		panic(fmt.Errorf("Fatal error config file: %s \n", err))
	}

	err = viper.Unmarshal(&y)
	if err != nil {
		panic(fmt.Errorf("Fatal error config file: %s \n", err))
	}
}

func GetConfig() YamlConfig {
	return y
}
